I'm not 100% certain, but my gut tells me you are not going to be able to find a fool-proof, one-stop-shop way to achieve this.
Here's what I did just now as a quick test for you, that might get you started...
I created the new field that will be a list type field, but, to start with, will be a standard, string type field, as this makes editing easier.
I tested with one file. We will call the new field [New Field] below, replace that with whatever you named yours
In the search bar up the top left, I entered [sub genre]="rock"
I selected one of those files. It contained "mellow rock; alternative rock; rock ballad; soft rock"
In the tag window, click the New Field to edit, type =[sub genre] and press enter. This puts the semi-colon delimited string in your new field.
Click the New Field to edit again, and paste the following expression:
=replace([New Field],/;/ ,/;/ Rock\)
Change "New Field" to your chosen field name, and press enter.
Your New Field will now contain:
"mellow rock; Rock\alternative rock; Rock\rock ballad; Rock\soft rock"
Go back to the field manager and change your new field to data type "List" and edit type "List"
Back at your workspace, you will see a problem...
We are replacing the semi-colon with the heirarchy parent item, and, as the 1st item does not have a preceding semi-colon, it gets left hanging.
I don't have a solution for that.
I haven't tested going three levels deep (reminds me of Inception
) but I could imagine that getting exponentially more complex depending on the consistency of the data that is in your New Field.
Have a mess around with that anyway and see if you make any headway.
-marko.