The Fix:
Add a couple temp variables
var _xO = (-sprite_width/2); ///Puts us back to the middle)
var _xSq = ((1-xSc)*(sprite_width/2)); ///Adjusts the offset based on how much the sprite has been squashed. When not squished this is 0, as it squashes this increases and keeps the sprite centre.
Then for the draw x position in draw_sprite_general use: x+_xO+xSq
2 comments