Progress, mostly "under the hood" stuff.
Re-implemented the level ceiling, this time just flat and textured. This in turn made the lighting look stupid, since it was actually just a 2d shadowmap, so shadows and lights on the floor were also getting projected on the ceiling.
So, I made another lightmap and tweaked the shader. One lightmap is the "floor level" while the other is "ceiling level", and the shader interpolates between them depending on a pixel's Z value. I also halved the lightmap's resolution, without any significant loss in quality.
Pillars are now round (well, hexagonal) instead of angular, and level walls have pillars placed on the corners.
Sword hitbox needs tweaking to accurately place the hit effects, which have been added for both sword and bullet hits (debris).
Split the level model into chunks (level is 256x256 cells, while the chunks are 64x64 cells each. Also tried fixing the worst memory leaks, but some still elude me.