Unpoven idea: Perhaps keep their origin on the floor. Technically waking on the floor (invisble without collision), but raycast from there up to the ceiling and render the mesh where it intersects, upside down. Provided floors and ceilings generally overlap where they’re going to be.