OK, the tutorial I promised. It's not really a tutorial but more an explanation of how I setup my build. you can do it any way you want it but here's how I preferred doing it.
So here's my setup of Dreamland stage (same exemple as you choose). All my stage are setup the same way. In the case of Dreamland, it has 4 different stage on it.
Hold A : load STGDXGREENS_A (also load st_dxgreens_A.rel)
Hold Start : load STGDXGREENS_B (also load st_dxgreens_B.rel)
Hold A + Z : load STGDXGREENS_C (also load st_dxgreens_C.rel)
Hold Start + Z : load STGDXGREENS_D (also load st_dxgreens_D.rel)
Don't hold anything : will randomize all 4 STGDXGREENS stages (and load the corresponding .rel).
Now, a couple of thing before I start.
1) I decided to scrap project M setup of "original stage" + "stage_Z" setup and instead do it with _A, _B, _C etc. I prefered it that way because I found it less confusing when playing with the ASL tool. I'm basically never using the stage that doesn't have an "underscore letter". it stays the default brawl disc stage and it never get loaded.
2) Notice the "AND" and "OR" check box on the bottom right of the ASL tool?. If I remember right, project M use "OR" and I changed all the stage to "AND" because it give more control on the way the ASL works. with "AND" you have to have the exact combination to load properly the stage. I prefer it that way because it's easier to troubleshoot.
3) I do all of this for the REL as well, even if sometimes I have multiple duplicated .rel of the exact same .rel. I prefer having them all there because it's cleaner to understand and make it less likely to do any mistake. basically, when clicking on the "Stages ->" button, you'll go into rel mode and there I redo the exact same setup as shown up there but for the rel.
now about my setup.
Stage code : pretty simple, it indicate which stage the code affect
Button combos : I always put button combos for all installed stage. since there is 4, there will be 4 button combos
Randoms : now, this is IMPORTANT!!! this is where you setup how many of your stage will be randomized.
4 means it will randomize between A, B, C, and D
if I would put 3 here, it would randomize betwewn A, B, C (D would never appear in random. So it's possible to install stages and never have them appear in random)
if you put zero here (I think this is how Project M is setup), no stage will be randomize, meaning that if you choose a stage and don't use any of the button combinations, instead of randomizing the available stage, ASL will instead load the original stage without "underscore letter" (basically, it would try to load "STGDXGREENS.pac", either from your SD card or directly on the Brawl disc if it can't find it on the SD card)
so, by that logic, if you put 1 in "randoms", well ASL will always load _A when no button combination are found. This is a safe way to prevent a crash because there's no chance ASL will try to load "STGDXGREEN.pac" that way (the original stage without "underscore letter")
Also, if you put 4 in "randoms" and only 3 in "button combos", i'm not exactly sure what happen but my guest is it will probably have a 1 on 4 chance of causing a freeze.
So anyway, that's pretty much how I setup my thing. the rest is all about getting inside the "Edit Buttons" and setting up each stage (all 4 "Button Edit" window in my screenshot is how each stage are setup (_A, _B, _C, and _D)
And don't forget to setup the .rel as wel!! they have to match or else you'll have a freeze.
(wow that was a longer text then I expected. hopefully you understanded something lol)