Fix inconsistent collision mesh generation (#608)
The core issue here is that it doesn't consistently rebuild the mesh after repositioning, and at least in one case where it does, the zone hasn't changed yet so y isn't clamped correctly for this zone (in this case, the position is actually updated twice -- the 2nd occurs at the end of InitZone(), which is correctly clamped... but the mesh wasn't rebuilt there. We remove the first and fix the second.).
Additionally, there's a couple of...