I just got an idea about xp distribution, but not sure how feasible it is code-wise.
There could be two counter values that determine the xp of a mob, how many of that mob you killed in that zone for your last x number of kills, and how many mobs you killed from that zone, for your last x number of kills.
So then people can't run from mob to mob in the same zone to xp on, because eventually these will give negligible amounts of xp, and they are 'forced' to level in another zone.