Ok, sorry for the lack of updates, but been pretty busy lately, and I wanted to give everything a thorough testing this time so I don't have a million and one bugs. So far everything seems to be going well. Class names are changing correctly, levels are behaving correctly, spells are being learned automatically at different levels (not just the 0th level), it is printing out useful information if it comes across something it doesn't expect (instead of just red text crashing). Overall it is much more solid, and hopefully much less buggy, but I still need to test it out in adventure and fortress mode (just been doing arena tests) so it might take a little longer for an update.
On a semi-related note, I have also begun connecting the civilization and classes systems. This means that you can have NPC entities with different classes! How it will work is you will be able to say [LEVEL_ADD:CLASS:#CLASSTOKEN:#PERCENTAGE] and [LEVEL_REMOVE:CLASS:#CLASSTOKEN], this will add or remove the class available to the entity, and if added, will give a percentage of the population that will be that class. You will also be able to add and remove classes with reactions, so you can have something like "Teach the Humans the Art of Stone", and viola, the humans can be geomancers (for example). Note that this won't apply to your player fort or adventurer, but will apply your parent entity (this is because the script currently treats player controlled things as their own civilization, that may be changed at a later date, but for now it is how it is).
Now the tricky part will be how to assign the correct syndromes and things to the units as they appear on your map. I will probably need help with that from more experienced DFHack people, but the base information will all be easily accessible.
When I finally do release the update that ties these too together, it will also come with the Events System that is mentioned in the first post, all three of these systems will be independent, with the option of linking them together, or just using them separately.
EDIT: So here is a thought...
Right now the classes gain bonuses to their attributes, skills, traits, etc... when they level up, but those bonuses are lost when the class is changed to a different one (e.g. A warrior might get more toughness and a mage more willpower). I am happy with these temporary bonuses, but do you think there should also be permanent bonuses? Basically, should a unit gain a bonus to their toughness every time they level as a warrior that stays with them even if they switch to a mage? (e.g. A unit rises to level 5 as a warrior and then switches to a level 1 mage will have more toughness than the same unit that just started as a level 1 mage).
Sorry if I am not explaining this very well, but you can think how most class based rpgs work, you get a bonus for being a certain class (which is currently working) and then you get a permanent bonus everytime you level, based on the class you leveled up with.
Thoughts?