Hi,
That's one mad Fsm!!!
When I have too much links, I simply use events, that works fine, and I make sure I comment that the event is local, else it becomes difficult to follow.
also, in your case, I strongly recommand you separate features into distinct Fsm, I am sure you can split that in three or four Fsm at least. If it's a question of accessing variable, don't worry, Get/set Fsm var is fine to use really. Have one fsm acting as a central repository for common values, and other fsm simply go there to get and set vars.
bye,
Jean