Okay, that explains the problem. What happens is that the hood partially enters the level block and then creates lots of contact points (polygon-polygon) depending on how far inside the block it is these contacts may be impossible to satisfy at the same time. Workarounds: don't use PH_POLY but rather PH_BOX for your car. This greatly reduces the number of contacts created. Decrease the CFM and increase the ERP values to make the car less squishy so it does not penetrate the level block as much. Check for EVENT_FRICTION and reduce forward motion while the car collides with the block.


Here's a quick overview of how penetration tests are done in A6:
There are two kinds of collision tests. One test is done at the beginning of each frame and when objects are slightly (!) intersecting the physics system limits the movement in that direction by a certain amount, (depends on setcorrections and constraint properties). If they are deeply intertwined or have a high polycount (with PH_POLY set) this creates lots of contact points that can become impossible to satisfy. E.g. two boxes at the same spot perfectly aligned would yield contacts in +X,-X,+Y,-Y,+Z, and -Z directions - where to go from there? Usually it's not as bad, yet bad enough to cause an explosion.

When no collision is detected at the beginning of the frame (e.g. they are 0.1 quants apart) the object is free to move in that direction. This would allow fast moving objects to be at position x before and at position x+wall_thickness after the physics update. To prevent object penetration I use c_trace to check whether the object's center has intersected a wall and if so move the object back a few quants so that it's bounding sphere touches the wall. This can fail because the object's center may not penetrate an object but the object's perimeter does penetrate it to a great degree (remember that small penetration is good, large penetration is bad).