char LName[32]; // the name of the layout last loaded (if loaded locally)
The AXI packet has the LName field for specifying the name of the layout loaded, but this name is only provided at certain times. In the case of a player using shift-U mode and the "load layout" button on a server, this field is blank.
(IIRC correctly, you have said before that this is because the client doesn't load a layout the same way as a host does - that the host does the proper AXI method but the client fakes it by reading the file and sending the objects through AXMs.)
I don't know how much work it is to change this, but wanted to point out how important this one is for anyone who uses tracks other than the official tracks.
Currently no client-side program can trust enough to distinguish between layouts - they can tell the difference between say BL1 and BL2, but any of the 100s of layouts I have on BL4X for instance will all report to a local InSim that they are BL4X. A server-side program is only safe if people use the axload command on the server.
For myself, this problem is holding back a few projects - I don't want to leave the track selection in the hands of the user because it's too easy to destroy data with a small mistake and it's a PITA to remember to do. I've explored a few object-based workarounds, but they're... "not good".