I think getTarget() could be exploited so maybe use one of the hatelist options GetHateTop() GetHateMost() or GetHateRandom()
Code:
spells.cpp
Option C:
else if (IsBeneficialSpell(spell_id) && spelltar->IsEngaged()) {
Mob* targetstarget = spelltar->GetHateTop();
targetstarget->AddToHateList(this->CastToMob(), CheckHealAggroAmount(spell_id));
}