I've just decoded this:
The pointers for torch data are at 3 locations
1. 15B16, 6A F3 04 = 04 F3 6A = 2736A (block 80)
2. 15B1D, EA F3 04 = 04 F3 EA = 273EA (block 80)
3. 15B24, 6A F4 04 = 04 F4 6A = 2746A (block 20, max 80)
Torch data starts at 2736A in hex (if the rom has no header).
From the hex study of torches
*Code (example)
43 00, AA 03, B6 03, AA 09, B6 09, FF FF
43 00 = room 67,
AA is x, 03 is y for the first torch
B6 is x, 03 is y for the second torch etc
FF FF is end.
IF YOU WANT THE TORCHES ON BG2, INCREAS THE Y COORDINATE FOR 20 IN HEX. Can be done with HEX editor only.
Example: one torch in the room
43 00, 10 05, FF FF
43 00 in hex is room 67 in dec, FF FF is end of code for this torch. The 10 is X coordinate in hex, but it will match with the HM X coordinate if devided by 2. So the HM coordinate is 10:2 (hex) is 08.
The y must be multiplied by 2 to get the HM y value. The y 05 in hex is 0A in HM; but on bg1.
Increase this by 20 in hex= 05+20 (hex) is 25 in hex, which is 0A coordinate in HM, but on bg2!
Do not tuch this torch in HM, because if you move it, it will jump to bg1 automatically. Then the process must be repeated in hex, to get it to bg2 again.
New code for the torch on bg2 (in room 67),
on HM coordinates x=08, y=0A is
43 00, 10 25, FF FF
Example of 4 torches in room 67= 43 in hex
43 00, AA 03, B6 03, AA 19, B6 19, FF FF
All 4 on bg2
43 00, AA 23, B6 23, AA 39, B6 39, FF FF