$05/853F B7 65 LDA [$65],y[$06:8689];level data in ROM map
$05/8541 STA $00 [$00:0000]
$05/8543 AA TAX
$05/8544 29 0F AND #$0F
$05/8546 8D 2B 19 STA $192B [$00:192B]
$05/8549 8A TXA
$05/854A 4A LSR A
$05/854B 4A LSR A
$05/854C 4A LSR A
$05/854D 4A LSR A
$05/854E 29 07 AND #$07 ;max 8 variables
$05/8550 AA TAX
$05/8551 BF DB 84 05 LDA $0584DB,x[$05:84E1]
$05/8555 AE DA 0D LDX $0DDA [$00:0DDA]
$05/8558 10 02 BPL $02 [$855C]
$05/855C CD DA 0D CMP $0DDA [$00:0DDA]
$05/855F D0 02 BNE $02 [$8563]
$05/8563 8D DA 0D STA $0DDA [$00:0DDA] $0DDA store
That would look alot better with a monospace font...
RAM map tells me $0DDA is the music select, which happens to be written to $2142. The first ROM address in the code is in the level data, and Y reg = 02 when accessing, so it's the third byte in the level data I guess. The high 4 bits of it, anyway of which there's 8 variables for it.
At 0584DB is the actual music bytes themselves. The one being accessed is the boss track (05h). Changing these 8 bytes to 05h for example makes every ingame level have boss music. I suppose you're in for some manual pointer work since LM doesn't want to change it.
EDIT: I don't think I was very clear...To change the music of a level manually:
1. Lookup 24bit pointer according to the level number at:
2E200 $05:E000 1,536 bytes Pointer Level data pointer table (Layer 1)
2. Change the third byte's high 4 bits, at the pointed to address, (max 8 variables) to your track of choice.
SMW doesn't care of it's a boss level. I tried it with the first boss battle (Lemmy?) and there's no issue.