Problem with per-poly collisions on static mesh

I have a somewhat large level that is made from a static mesh. The mesh is set for per-poly collision and block all/world static. It mostly works. But there are some issues. For example, the picture below shows the player standing inside a wall:

Another example is the player standing with her feet inside the sidewalk. The second picture shows that if the player moves over a couple of feet to the pavement, the player’s feet are where they should be:

There are also areas where phantom objects are blocking the player. These mostly appear near the wall where the collision is missing. It kinda looks like the engine is simplifying the geometry which is resulting in the misbehaviour. Is this a bug or is there something that needs to be done to regenerate the collisions for the level?

You’re not supposed to use per-polygon collision for that. It’s meant for simple objects and line tracing, not character collision against entire levels. Even if it worked, performance would be almost certainly subpar. You need to use convex collisions.

If that were the case, you wouldn’t be able to use terrains which can be enormous and are rarely convex.

edit:

Further research shows that terrains maps use a special form of collision derived from a height map. This is a big problem if you want to model city streets with things like curbs, sidewalks, and driveway ramps since terrains are not very detailed.