You are pushing inheritance too far, The AI should be in a separate class. Composition is far better than inheritance in many cases.
Take AI for example, you might want to plug the same AI into a number of different NPCs, your tree get real complex if one is humanoid and the other is something else. Then ask yourself what the difference between a humanoid player and a humanoid NPC apart from how they receive their commands.
You classes should be more focused as this makes them easier to plug together. It sounds like you starting to experience the problems of trying to put too much into one class structure, a deep inheritance tree is a good indication of this. Take a step back and try to pull apart the concerns and wrap them in their own object. Also look at some of the abstractions you have in the tree, if they do not actually buy you anything drop them and flatten the tree.
You are also suggesting a structure I wrote above if I'm understanding it well? Anyway the AI of all the types is handled by the same state machine. A mob could start with a state that decides what to do next based on certain criteria then add that state to the stack of states in the state machine of that entity.
I could indeed create a seperate class for something like stats that handles a bit better then a regular map that needs to be looked up with strings.
I guess I need to do the same for items. Instead of Item->Wearable->Sword I can just have item with a String. But I need to handle a ton of cases with if statements this way.