The column dialog of the Mp3tag list view allows to enter a user defined sort criterium per column.
Column Name: Album
Column Value: $meta_sep(album,'\\')
Column Field: %album%
Column Sort By: %album%%discnumber%%track%%title%
Column Numeric: no
This will reduce the steps of sorting other columns in order to get the sorting by wish to one click (maybe two clicks for descending sorting).
Read about how to customize columns in the manual.
Be aware that this sorting expression is "quick and dirty", and does not sort correct in all cases.
In order to get a better sorting result you need to do some column sizing like ...
Column Sort By: $left(%album%$repeat(' ',50),50)$right($repeat(' ',3)%discnumber%,3)$right($repeat(' ',7)%track%,7)$left(%title%$repeat(' ',100),100)
I pointed out above, that a Column Sort expression of ...
... might not sort correct in all cases.
I proposed a fixed size Column Sort expression, which provides a better guarantee to do a reliable sorting. But the expression for itself looks complicated, and the prediction of the fixed size column width might be predicted to fail for one special case some day and it costs computer memory resources.
It might be possible to permit dynamic length per tag-field, when the individual tag-fields are delimited by a special character, respectively by a special character sequence, which is impossible to occur in the tag-field content.
Something like this should be coded ...
Column Sort By: %album%'-|?|-'%discnumber%'/|/'%track%'++*'%title%
... or this ...
Column Sort By: %album%$char(7)%discnumber%$char(7)%track%$char(7)%title%