Dramatically simplify the light movement code and fix the "snap" effect when teleporting. Do this by splitting the modelview matrix into a model and a view matrix.