I actually was working on a plugin similar to this, but I didn't publish because I didn't want the user of the plugin to have to edit the script file every time they wanted to change the step sound mappings (for some reason, I can't edit the game's terrain tag initialization script to add an item to the list in a plugin and use those list items in the terrain tag script section itself, I wanted this to be a "plug in and forget" type plugin where you don't have to rifle with the files to make it work). This plugin is cleaner than my shoddy Ruby code lmao. And it even has per-tileset sound effects (I simply used "indoor" and "outdoor" maps as the distinction instead). Sticking with Enurta's method was the better move the whole time, I should've done that, I think I just saw the 18.1 in Enurta's plugin and went "nah, I'll just write a new one" lmao. I'm still gonna use my own plugin because I spent an entire day writing it.
Still, nice work! The one thing I might suggest is to possibly consider making it so non-player events have sounds on step? It might make for a more immersive experience, I personally find it awkward that the player has sounds on step but none of the other moving NPCs do, even if just quieter ones. Overall this is a good plugin for immersion's sake and I recommend it.