Block wargame stacking, within the limitations of Vassal

I have a plan, and I want to run it by the more technically savvy people here to see if it would work.

Block game, Napoleon’s Triumph, and the challenge is to use Vassal’s stacking in a way that allows up to 8 blocks (and a commander) to rotate together as a corps and to always all be visible to the owning side, hidden from the opposing side, with each block individually possible to reveal and interact with.

Until now, I have avoided stacking and focused on automating rotation based on map elements. A corps couldn’t be rotated together and maintain relative position, but if each block can automatically be rotated to the right facing easily, it’s not too much work.

What I want to try is to have each block have 8 layers, each offset by block width n from the commander piece, where n is the number of blocks in the stack.

So, whenever a block is moved, it checks whether SumStack(“block”) is equal to a dynamic property. If not, it updates the dynamic property to equal the SumStack, and sends a GKC to all 17 commanders. The commanders check if SumStack(“block”) is equal to their dynamic property, and if not, either increments or decrements the DP by 1, and sends GKCs with range 0 to the blocks in the stack. The first block sets its layer to 1, and updates a commander GP to 1 to indicate slot 1 is taken. The second block sets its layer to 2, and updates the GP to 2, etc.

Mouseover zoom would have to be disabled, I guess. Expanding a stack to interact with one block will be counter-intuitive. I don’t know how this setup will interact with the actual stack order, but I expect they will be independent values? Each of the block layers will have to have a non-rectangular trait so they all occupy only the commander space instead of the full layer size, and some indication within the non-rectangular space of the layer number, so that when the stack is expanded, the correct block can be selected.

There are 17 commanders, so aside from requiring a lot of GKCs and time to set up, is this going to work? Even if it could work, is a bad idea for some other reason?