Hey, cool! Sorry there is not much of a documentation, this was a project for a game jam, so I did not have time to tutorialize it!
So, we’re trying to multiply A by B. You got the right idea to have an infinite stream that releases A marbles at a time using the top = gate. And we need the small loop that makes sure it only happens B times. A marbles released B times equals A×B!
So the overall shape of your device is correct, but I think your inner loop misses some things, it just lets marbles keep passing forever!
May I suggest these additions to your design:

The X blocker after the = gate on the small loop makes sure the marbles are released one-by-one as the groups on the middle loop pass the = gate. Note that I reversed the direction of this small loop. This way, as the last marble of the group goes into the = gate, the blocker opens and a single marble in the small loop goes through. The drain is there to prevent these marbles from looping back and letting the operation run infinitely.
I also placed the outer = gate after the inner one. Otherwise, the result of the operation would be A×(B+1), because the marbles in the infinite stream would always be released once before we start the countdown in the small loop.