I get it now... the layers register in alphabetical order, and then are added to the script by aggregation, using:
eval('?'.'>'.$layerphp);
to add a new class for each layer - with each class modified to refer back to the previous class as "qa_html_theme_base".
The last class to be added is then instantiated as the official themeclass.
What this means, is that the last class is used as the default, and is responsible for allowing the class before it to run for each function, by calling:
qa_html_theme_base::<function>();
which has been modified by the script to read:
qa_html_theme_layer_<x-1>::<function>();
where x is this layer's index.
That layer then is responsible for calling the layer before it, and so on, all the way back to the original, actual "qa_html_theme_base".
Since each layer "extends" the layer before it (originally "class qa_html_theme_layer extends qa_html_theme_base"), if the layer doesn't contain a function, it looks for the function in the class before it, and so on, again all the way back to the original, actual "qa_html_theme_base".
Hence, the layers are called in reverse alphabetical order.
The easiest way to solve the problem, I guess, is to rewrite the folders in the reverse order you want them to alter the code. E.g:
01_last
02_next_to_last
...
99_first