Isn't posible to, say, put an optional selectable in vgmstream configuration as to "override" reading extensions in favor of .txth/.txtp if present in folder?
As we know, extension does not tell about the (internal) format of the file, but it will be a clean process to just tell vgmstream to read .txth/.thtp file(s) first, then, if absent, read files acording to extension/header. This way the files will keep in "pristine" state, just extracted from source.
I do not think it's "correct", in the preservationism sense, that one should change file extension just for them to be playable with this plugin. This is more for file-system container source where a TOC is present.
I think "cleanest" approach to play unmodified extracted files would be, either by letting vgmstream read ALL files as you just wrote (which would increase overhead), or by making .txth/.txtp mandatory (not really, more like "ought to be") for sets with many formats/folders and with vgmstream having an option/setting to "prioritize" .txth/.txtp (as within these files we can write playback configuration for extracted files, to certain extent).
I firmly and positively believe that the .txth/.txtp combination makes playback transparent, without touching extracted data, so I bet/vouch for this "priority option" to be implemented, if it could be done. Even better, if .txth/.txtp could be made to read "into" folders, a la "file system" (i.e. .txth/.txtp referencing files inside different/nested folders, similar to .m3u8 playlist), and combine it with a "one for all" .m3u8 playlist in root folder, with tags and everything for the set.
Another question: Does .txth/.txtp accept "wildcards"/lists for filenames? To avoid worst case where we have to write many .txth(/.txtp) files for extracted data with different playback configuration.
Pardon me if I wrote too much, maybe I should take some needed "catch-up" with vgmstream progress.