Working with Level class I've managed to narrow down from 21 functions to 15 in two days. The biggest issue with Level is how to determine what objects (mainly creature and item types) are created in a level of some theme. Previously I had static lists, but that's not very clever and it tends to create quite similar levels what comes to objects.
An idea I had with creatures is give each creature a difficulty point. That would allow to set a max level for each level theme and create monsters to that limit by determining how many difficulty points are used. If you create a harder monster you get less monsters. That way a balance in difficulty is maintained. Need also some kind of way to determine where the monster wants to be usually. It should be just a generic rule to allow most of the creatures to created everywhere, excluding quest creatures.
There are still special set of objects created in some level themes, but I've tried to keep that number low. One of the main goals in this version is increase the randomness which is pushing Teemu towards the realm of a roguelike game.