Actually this wont work for the multi floor situation..as there is no occlusion testing.. the only wy to do occlusion testing would be to cast a ray from the light to the eye.. however, if you have multiple floors, you should have BSP or some kind visibility in play, so the object that produces the light ought to be culled by the engine automatically..eliminating the problem altogether.