I finally had a chance to try this out. It seemed perfect for a block wargame, with the commanders as mats, and other blocks as cargo.
The first problem I encountered is how slow it is. A mat with 1 small graphically simple piece on it, dragged to a location where it is caused to rotate, locked up Vassal for several seconds. Maybe this is a problem with how my rotate works: 120 facings, trigger if Facing!=CurrentZone, repeat until Facing==CurrentZone, where the Zones are all named 1-120. This worked fine with dragging a bunch of blocks previously, but is now a problem.
The second problem I encountered is that I don’t know of a way to prevent the blocks on the mat from being a) rotated to maintain facing relative to mat (good), and then b) rotated again by the same trigger that rotated the mat in the first place (bad). Is there some way to disable a trigger when on a mat? If not, there really should be.
The third problem I foresee is linked to this, in that the rotation to maintain facing relative to mat seems to be independent of a piece’s actual Facing property. So if I move a piece that is already rotated to another Facing onto the mat, the mat rotates it further to “maintain facing”, which obviously isn’t good for anything. As a workaround, I guess I’d need a trigger to reset Facing when a piece is placed on a mat. Is there some way to do this? If not, there really should be.