Here's my houserule in 3.0 to keep polymorph spells under control.
- Change into any number of shapes, but it must be a creature you have personally encountered, and has no more hit dice than you have levels. You gain any extraordinary abilities that exist in the real world - so you would get a bat's blindsight or a troll's Rend ability, but not the troll's regeneration. Up to one size larger or two smaller.
- For Polymorph other it's the same, except the target has to roll a will save or begin to believe that the new form is his 'true form', even fighting if his friends try to change him back. Takes care of the 'make everyone trolls' problem.