I can probably do something to make it easier. Currently the way it works is: ( Math.floor(( X -( W/2 ))/70) *70 )+( W/2 ) The 70 is the size of a grid. Objects X,Y location are based off the center of the object, so this takes the X, subtracts half the width to get to the left edge, then divides that by 70 (dropping remainder with floor) to get the number of tiles over that this point is in, then multiplies by the size of tiles again to get to where the left edge is aligned on a tile boundary, then adds half the width back in to get to where the center point has to be to maintain that left alignment. The X,Y that it has when you paste is vaguely nebulous. Certainly if you click first, it's right where you clicked, if you didn't, it is "probably" where your mouse is at the time, though if you've scrolled with the mouse wheel, that's not quite right. Probably changing to Math.round() would make it feel more natural. I'll give that a try...