I haven't tested it but I think it might be better to point out the part of your class that actually deals with the scaling. I know your using matrices but I don't feel like running through n lines of code to find the spot. I'm sure some of it is useful but please be more specific. I'm sure there is already a class out there like this; have you searched for another?

PS, is _xscale= ? not specific enough that you have to result to matrices. Cant you set the registration in the center and scale that way?