Bunch of changes/tweaks to MonsterLevelupHandler() to stop it from running away and to smooth out the mechanics a bit