Can the process of creating/parenting hooks to vertices be automated?

In the file is an example of creating an animation where an example cube is made to perfectly follow the surface of an animated object.
Object Surface Example.blend (612.9 KB)

Stage 1 in the file, left-most: just a regular mesh. I went into edit mode and separated a selected number of vertices that resembles a path.

Stage 2: Hooks were added to those vertices on the mesh-path.

Stage 3: Each of those hooks was parented to the nearest vertex on the mesh from which the mesh-path was derived. You can see that the mesh-path stays perfectly aligned as the mesh rotates.

Stage 4: However, there is no “follow mesh” constraint. So in stage 5, the mesh-path is instead remade as a full curve-path, with hooks added to each node, and those hooks then parented to each vertex. Once again, they rotate perfectly with the oritinal object.
An example cube is then assigned the follow-path constraint and it can be observed exactly following the path as the object rotates.

Stage 5: An example armature is added to the object. Now you can see that the example cube appears to exactly follow the surface of the object despite that the surface is deforming not only from its original rotation but also the armature distortion.

Problems:
-This is a tedious process, so it would be helpful if there was a way to automate this.
For one, you have to create a new hook for every single vertex one at a time, or at least I do. If you try and add a hook to all vertices at once, the result is only one hook that controls all vertices instead of many hooks.
Unfortunately for large numbers of empties, when I select all empties and parent them to the object->vertex all at once, it only parents all empties to just 1 vertex instead of parenting each empty separately to its respectively nearest vertex.

-The tilt of the path is not always aligned well, and blender gives no option to animate tilt or keep it perfectly normal/parallel to the nearest mesh face/vertex.