This is my first post here, so I'm not sure how this will come off, but the topic is quite nerdy. Also, I'm whoring my level.
Anyway, I have a level demonstrating that it is possible to construct the basic 1 and 2-bit logic gates (and, or, not, nand, nor) with blocks, mushrooms, and springs. From the design of the and/nand gates, it also seems obvious how to construct n-bit and/nand gets for arbitrary n. The only potential limitation is chaining of logic gates together. Are there constructions that allow one to pipe the output bits of one gate to one of the inputs in another gate? I'm not sure how to do this dynamically with user-defined inputs. It's obvious how it can be done with preset inputs where all the user does is push the start button.
Thus, I think (ignoring space/memory limitations as one always does) the possibility to use nand gates demonstrates universal computability for preset inputs. However, I'm not sure if SMM is a Universal Turing Machine for runtime-defined inputs, which is much more interesting. If it is, it might require different objects like certain enemies, for example. Enemies that can activate P-Switches are a potential candidate.
The level: 0DB0 0000 D04B 4C5A
P.S. I didn't construct XOR because it's naturally far more complex and is almost always defined in terms of nand or nor gates anyway.