That would be pretty cool, especially if you made it 3D. Be sure to make your own music, title and characters though, as the original Super Hexagon still belongs to Terry Cavanagh.
If you want to compact it a bit, some ways to do that include declaring a variable (BTN for example) that is equal to BUTTON(0), and you don't need the AND either. IF BUTTON(0)==16 does the same thing. Whatever you want to do though! ;)
It's not trying to spoil the fun for you, it's trying to help you learn. Finding new ways to code helps you compile your programs into a more efficient and smaller project, instead of having huge bundles of code that handles everything independently, for example.
If you want to clean it up a bit, then Like Oscar said, you can get rid of the question mark to make it say 'User:' instead of 'User:?' not that you HAVE to, but it makes it look better and is good to learn. LINPUT is an alternative to INPUT that lets you rid of the question mark for letter input.
Is the code that sets the sprite inside a loop? If so, it may be trying to set the sprite over and over again, resetting it to defaults and perhaps this messes it up... also, considering the sprite is already 64*49 pixels, scaling it by twenty will make it WAY too big to fit on the screen, being it will be 1280*980 pixels.
Changing to a new frame is pretty easy but the simplest way I've found uses a bit more code than it used to. If FU and FV are the first frame UV coordinates, and EV and EU are the second, 'SPANIM controlN,"UV",-delay,FU,FV,1,EU,EV,-delay,EU,EV,1,FU,FV' will play a two-framed animation.
This will store the data you saved to the array. Then you just need to declare your variables with what you saved. The elements of the array will be in the same way they were when you saved them too, so don't worry about that :)
The easiest way to do this would be to save your values in a DAT file. However, you can only put numerical values into these files. To save values to a DAT file, make an array with as many dimensions as you need, and store save file variables to its individual elements. Then you tell it to save the data with 'SAVE"DAT:nameOfFile",nameOfArray'
Maybe it's the AND part that's messing it up? Instead of AND, try 'IF BUTTON(3)==#UP AND Y>6 THEN code to execute...' Also, now that I look at it you haven't initialized Y have you? Nothing will tell it what Y should start out as, so when you execute the program Y will be 0, and since you told it to only change when it is between 6 and 10, it won't change. Try putting 'Y=6' right before your loop.
Like all games based off of others, be careful with this. You don't want to make an exact copy, and even using characters from the original Geometry Dash could be kind of risky. Just remember that the elements of someone else's game belong to them, and if you copy that you can have your project taken down without notice.
I think I see the problem. You are telling it to only INCREASE Y if it is OVER 10, so Y will not change until you've moved it down enough, which you can't move it down until you've... moved it down. Try 'IF BUTTON(2) AND #UP AND Y<10 THEN Y=Y+2' and so on. Flip the comparison sign for moving down too. Remember that positive coordinates go down and negative ones go up, too.
Yes, the MATCH power-up can currently change the enemies to ANY type, I plan on making the MetaCube power-up rewards and effects a bit smarter in this update :) I'm also reducing the speed of most of the enemies to balance difficulty a bit, and of course control and screen options and on top of all this bugfixing!
Accidentally forgot to save this at first. Right now these new options don't do anything, but the color options now save and don't reset when you open this menu! I'm also making a save file 'OPTIONS.DAT' containing the options.