Yeah, I wrote a Hi-res drawing program back in the 90's so I could do some simple animations. It was a bit of a runaway train but it made use of a number of graphics commands and the Joy function - using a sprite cursor and such. I was never able to figure out the multi-colour memory locations but was still ablt to produce nice pics with it all the same.
I never did an animation program, but made a graphic editor similar to GeoPaint in BASIC. Yeah the multi-color RAM is tricky to access with BASIC. One method I read about and used several times was to disable the KERNAL IRQ just so you could poke the right value to address 1. Then you can access bitmap color RAM... but if your program crashed in then you were out-of-luck... the keyboard does not work when IRQs are disabled
When I wrote that the # syntax wasn’t included in the BASIC reference, I hadn’t actually checked the MOVSPR entry, because I was operating under the mistaken assumption that the hash mark was acting as a BASIC operator or something of that sort. I had never seen a hash mark used in Commodore BASIC at all, anywhere, and had no idea how to pick apart the syntax of the original expression.
EDIT: With the obvious exceptions of GET#, INPUT#, PRINT#, and RECORD#, of course, but it’s part of the keyword with those. Not the same thing at all.