My Suggestion for the walkmesh walk is probably a bit simplistic.
Simple solutions are not always wrong!
First you need to create a 'walker' or something that rests on the mesh.
That is actually what many (most?) games do. You may see a fully animated figure, but most of the collision detection and resolution is done on an ellipse, capsule or cylinder.
You have initial start points etc. already right? So you need to compute the next walk point by seeing if the point you are going toward is within the walk mesh. I recomend the simplest method first, checking each polygon (2 dimensionally IE vertically) to see if the walker is within it. When a hit happens you stop checking the walkmesh. If no hit happens the walker stops moving. You need to compute a step point I believe.
There is one optimisation you can do: The characters in FF7 can not jump (except in scripted sequences), so you'll never really leave the walkmesh. So you find a current triangle, and check if the motion vector crosses any of its edges. If it does, you check if there is another triangle sharing the edge, or if it is a border edge. You can precalculate that information when loading a walkmesh. If there is another triangle that triangle becomes the new current triangle, if there isn't the motion vector gets clipped by the triangle edge, or you can implement some slide behaviour. You only need to do a full search if you teleport to a new position.
(I'm sure this is something you thought off as well, but I thought I should mention it anyway.)