I just found that the "Remove fields except« action doesn’t work as it’s name would suggest: Apparently it only removes fields known to Mp3tag.
I had the situation where I wanted to do a »Clean« action to remove some »foreign« tags from a stream editor (SE.. mentioned elsewhere), and some »private« fields another application writes. No luck (checked using metamp3 --info filename.mp3).
Could »remove fields except« be changed in behaviour such that it behaves like STRG+R/STRG+Z? (Remove all tags, »undo« [rewrite] only those known by Mp3tag and specified by user?)
This would allow for really removing any crap/unwanted tags other applications (sadly) write, so one would end up with »clean« tags. (Or, in my case, have the other application see the analysis tags missing and re-calculate them.)
(Used Mp3tag v2.42b to test this.)