All of the levels are hand-drawn, currently using Tiled. In fact, I'm pretty much still using the same system I hastily developed for the original Temple of Idosra. If anyone's really curious what I'm trying to get away from,
this is the xml file that generates the levels in the screenshots. Or, rather, that's part of it. The xml file was constructed by hand. The files referenced called "floorplan" are .csv exports from Tiled. (This isn't the definition file for the original game, although the header still says October 2016).
It's really a terrible system for a large game world. Using Tiled, I have no ability to set object properties (example: the contents of a chest). So once all the walls and items are loaded, I have these things called "flags" that tell the game how to configure certain properties.
The worst part from the original game was setting the exit data (by hand):
4,17,1,Idosra2-entry,0,0|4,18,1,Idosra2-entry,0,0|2,16,1,Idosra2-gardens,0,0|2,17,1,Idosra2-gardens,0,0|2,18,1,Idosra2-gardens,0,0|2,19,1,Idosra2-gardens,0,0
This tells the game where to put the player when they walk out of one map and into the next one. Keep in mind that in the original game, each of the 113 rooms was its own map

When the power went out I sat down with a stack of graph paper and worked out these coordinate codes for each of the ~300 exits. This is why there isn't much variation in the location and size of exits between rooms.
The problem with poorly designed code is that it has to get bad enough to a point before it can be justified taking the time to replace it. Tiled itself is limited. It's too cumbersome to create maps that are more than ~4 floors tall. I originally switched from the Stencyl scene editor to Tiled because Tiled has an isometric mode--but it wasn't designed for multiple level map designs.
So a new editor is where I am now

In the future I do want to explore procedural generation, but what I'd probably do is create a bunch of "template rooms" and then glue them together in random ways.