The code itself is not inflexible or non-practical. It makes the assumption that the smallest base unit of a left/right ledge is 16 x 16. The adjustments done to the distance to be checked for the open landing space are fine because otherwise checking for an open space would be more intensive. I could go over the code again and see if there is another way of calculating that which would be more favorable.
Before you go and call my code total !@#$% though, I think that when you first introduced pushing that while push blocks could be set to only move in certain directions, beyond that the code was !@#$% poor. It didn't account for other objects that Link might run into if he is pushing the block and not completely behind it, the object being pushed would move with Link not even trying to push it (Link would be able to move while the block was still in motion), the code for it was just tacked on without really ensuring that it hit well with the overall code, etc. I am not going to even get into the imperfections of the swimming engine.
And no, that was the problem of the ledge-jumping entirely. I was referring to a time when the ledge jumping code either had to be first or otherwise if checked after other solid objects there would have to be something like "if place_meeting(x, y + 1, parLedge)". The code in the latter would have to look beyond where Link was because the solid object would move him back so at Link's x/y he would no longer be hitting the ledge. You are correct, the corner-cutting code thus moved him back, but in no way would the problem be better solved by moving Link back in the ledge code. Instead, by the collision system implemented in this Primary Object Collision code, any obstacle object is remembered, any obstacle object can be corner cut around, etc.
Corner-cutting works in this Primary Object Collision system by checking both sides. If one of the sides is nothing and the other is something, then corner-cutting occurs. Corner-cutting works, for example, when moving left and running into something, if there is no object colliding with Link's top vertical half, then it checks with a certain sensitivity to see if Link can move up. It does NOT use the entire height of the shadow mask, both height and width use about half.
About the size being either 6 or 7, the code in the download link for corner-cutting actually checks equally to each side even though technically it doesn't have to. This wouldn't be an insensitivity, but an oversensitivity. The reason that horizontally one side only has to check out 6 pixels one way and 7 the other is that because the width is 14, the origin's x value can't have an equal number of pixels on each side. Unless you are referring to how the corner-cutting show look out further, if adjusted to do that, trying to run into a 16 by 16 obstacle makes it seem like that obstacle is covered in butter.
Then again, I am being stupid. The corner-cutting you must have been referring to is actually in the ledge code because the wall and ledge are both obstacles; thus when first running into them and the ledge is the primary object, no corner-cutting is done anyway. Link only ledge jumps when he is squarely over the ledge object though, and is moved to that position when the ledge is the primary object he is running into.
My code isn't as bad as you think it is, you're just straining to fit it to your specific way of doing things. In the last PM I sent you, that is why I suggested having two code bases to prevent this. I am not even asking that my base be the de facto one. Well actually, I would not have to ask as I am the administrator who started this project and supplied the first movement base which you had built off of. And again though, I have been unable to replicate the specific error you encountered; in all cases I would still jump over the ledge.
If this comes across as me being mean or an ass, well that is somewhat true. I like criticism and analysis of my code, but when my code is a tried and honest attempt at solving the fundamental structure of any code base - for it to get dismissed as a waste of time feels a little insulting.