This time, I started by disassembling the EXE using Ida, and was able to identify the overall structure of the files. Once I knew how the level files are laid out, I was then able to make targeted changes and observe the result when running the game, which helped fill in most of the gaps, alongside more disassembly. What also helped a ton was a good number of debug log strings left in the code by the devs. (cont.)
It even still calls the OutputDebugString API, so when you run the game with a debugger attached, you can see all these log messages!
Here's a selection of some funny messages:
"You madman! You're running a 24-bit desktop! It'll be slow.."
"Created Too Many Models! TALK TOO [sic] TIM NOW!!!"
I'll probably put this on pause for a little bit, but intend to continue at some point - I'd like to at least get 3D models displaying in the level viewer, and ideally figure out the lighting system.