They're both in the <dax:genre> field. However, with just a little javascript you can crack that field (at least, until Andrei changes the format of it - but he won't do that! )

Here's the code I used:

Code:
function showGenre(g,ssg)
{
    if (g.indexOf(";") == -1)
        document.write(g);
    else
        document.write(g.replace(/(.+);\s+(.+)/, ssg == 1 ? "$$1 ($$2)" : "$$1"));
}
I pass <dax:genre> to this function as the 'g' parameter. What I'm doing here is using a flag (that the user can set through the preferences) to specify whether to show the sub-genre.

The regular expression (between the '/' characters) extracts the two parts. You could crack the string the same way using String's split member. That code would look about like this:
Code:
function splitGenre(g)
{
    var genreBits;
    genreBits = g.split(/(.+);\s+(.+)/);

    // genreBits[0] contains the genre
    // genreBits[1] contains the subgenre
}
To call this from within your template, use code like this:

Code:
<script language="javascript">
splitGenre("<dax:genre/>");
</script>
Hope this helps.