It's a source change.
Code:
uint32 expcap = (GetEXPForLevel(GetLevel() + 1) - GetEXPForLevel(GetLevel())) * .14;
if (!resexp && add_exp > expcap) {
add_exp = expcap;
}
add_exp = GetEXP() + add_exp;
}
This would be in EXP.cpp
This will essentially cap ALL exp at 14% maximum, no matter the circumstances, other than resurrections where you lost > 14%.