Like Computergeek01 said from what you have posted you seem to be doing just fine with a typical entity hierarchy design though you are a bit heavy in your branching in my opinion.
Though I do have a suggestion. You might want to try out a component based design for your entities instead. In my honest opinion a component based design for your entities in a game is probably the best route to go.
Yes it may seem more complicated at first if you are not familiar with the style but it will make your code much more manageable and open up some nice possibilities that are hard to do with a traditional hierarchy based design.
For example in an traditional hierarchy design it usually starts out quite neat with functionality seperated neatly in your tree, but as time goes on and more entities are added that need to share functionality you will end up pushing more and more of that functionality up the tree and you will end up with a very top heavy hierarchy and possibly a "god class" at the very top.
Component based entity systems do a great job at avoiding this problem along with other problems. Now if you don't have any idea what a component based system is it would take far too long to explain it here but here is some good articles on the subject.
http://www.gamedev.net/page/resources/_/technical/game-programming/understanding-component-entity-systems-r3013
http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
http://www.gamedev.net/page/resources/_/technical/game-programming/case-study-bomberman-mechanics-in-an-entity-component-system-r3159
There is also good a great chapter on the subject in the game programming book "Game Coding Complete 4th Edition".
Here is also a example of how a component based entity system might be structured that I wrote awhile ago.
https://github.com/bjumbeck/AsteroidsClone/tree/master/Source/ComponentSystem
Enity - The container class that manages all the components of a entity
EntityFactory - A factory class which uses XML documents to create a entity made up of certain components
EntityComponent - The base class all components inherit from.
Anyways I will end this very long suggestion post ;p, in my mind component based systems are far superior to traditional hierarchy systems for game entity systems.
Wish you the best of luck with your game you are working on and if you have any questions about my post or even just game development in general I would be glad to help.