xyz Excellent, this looks good already! I'm using that method for now rather than checking the angle. I'm also going to make it a "rule" for when I'm making my meshes to not make any faces that may cause that scenario I described - shouldn't be hard to avoid with the style I'm going for.
Related - I'm running into a slight issue (well, kinda) with the velocity. This is what I want to create:

However, because the last normal isn't exactly 90 degrees, there is a bit of velocity on the the x-axis. This causes the character body to overshoot the ramp and end up going behind it (on the x-axis).
This makes logical sense of course, this ramp isn't launching me exactly perpendicular to the ground so I'd still have velocity on all axes. IDEALLY, they'd just continue to move up and come right back down to slide down the ramp. So I'd only want velocity on the y and z axes even though this isn't realistic (I'm going for stylized movement after all).
Here's an example from THPS. I don't think it purely uses rigidbody simulation - there's definitely a lot of kinematic movement from testing I've done, which I why I use this as a reference:

You can see that the ramp is not perfectly 90 degrees at the point at which the skater leaves.
I was thinking I could lock the character body into some sort of spline/curve that would keep this from happening, but somehow keep the gravity in control for the y-axis and allow movement on the z-axis. Or I could just lock x-velocity while they are in the air and turn it back on once they land, but this feels like a hacky solution that may not be ideal in all situations, so I'm not sure that's a good path. What would you say would be a good approach to this?