Honestly, I think the biggest reason is the difficulty. For the life of me I cannot get past stage 18.
There are checkpoints which make things a whole lot easier, or more forgiving. The teleport mechanic can be difficult to get a grasp of for sure. I’m not sure how best to communicate the mechanic other than what is already there. There does appear to be data saving, which is amazing also!
The timing of these platforms are quite challenging. I’d reduce the wait time between the blocks fading out/in:
I’m not sure if you are already using this, but for platforming games adding BufferTime and CoyoteTime helps players feel like they are better in control of their movements/jumping ability: Coyote time and Jump Buffer for platformer games
Minor thing: I think the signs like this could be more readable if the text was white opposed to black:
While this arrow helps, I think a physical arrow mesh/sign would be more eye-catching:
I’d keep what’s already there and add a sign somewhere near the side.
I recorded myself playing the game. I hope that watching someone else play the game can help you see where players get stuck. I’ve found that helpful for me. When I play my own games, it can be easy because I know everything about it, I made it after all. So, that makes it challenging to know how generally difficult it is for players. A rule of thumb is that if it’s hard for you -the developer- then it’s probably way too hard for the players.
I recommend x2 speed, it’s ~20 mins.