I've never understood the issue of falling through the world, myself.

I'm no coder, not even kind of, but wouldn't something along the lines of...

"if Z-axis = < 0 then reset Z-axis to > 0" or even a Z, Y and X-axis reset to just a few seconds prior?

Or does the game lose track of where you are entirely when it happens?