My bad, the formula for checking overlap would actually be:
Mob.ImagePointX(1) - Mob.X
Mob.ImagePointY(1) - Mob.Y
as it's offset from the object and not direct location coordinates :)
Anyway, seems there is another problem when checking for overlaps from same objects, couldn't quite understand why. Probably someone else can shed some light on this? Does it perhaps have something to do with picking, like both of the objects are picked when checking for overlap and something weird happens?
One way to go around this would be to add 'mob' into a family and check if there is overlap with that family. Not the most elegant way but seems to work.