I don't think that the normal is inverted, but I can guess a possible reason of the problem: The normal is always taken from the hit surface. That's from the entity itself, not from the other entity, and this is different to the other collision events.