Maybe this could be cleaner, but it seems to work for experience gains.
I need to get the corpse to poof now.
\zone\attack.cpp(2130)
Code:
Mob *give_exp = hate_list.GetDamageTopOnHateList(this);
if(give_exp == nullptr)
give_exp = killer;
if (killerMob->GetID() && !HasOwner() && !IsClient() || killerMob->GetID() && !IsTempPet() && !IsClient())
(give_exp = killerMob); // the added code
if(give_exp && give_exp->HasOwner()) {