You can optimize the part count by using crossovers to combine the return paths.
You appear to be missing a ramp in the top right to prevent a couple of red balls from facing a long drop…
Nice catch! Thank you for bringing this to my attention. I have corrected the post to reflect the additional piece.
I like how all the bits end up in their starting positions, so there’s nothing to reset manually between runs.
I also like how each pair of bits points in the same direction, so it’s easy to tell if they are configured properly.