One would have to do at least these:
- Rewrite SMB1 a subroutine at a time, replacing each subroutine with equivalent original code. This is how LAME was bootstrapped from the ISO MP3 encoder over the course of two years (mid-1998 to May 2000). It also gives a chance to optimize the engine's RAM use.
- Leave NROM behind, allowing data to be split across banks and enemies to be replaced in CHR RAM between scenes.
- Replace the level designs.
- Replace the graphics. For the hero you could find all sorts of pixel artists, and the animation could be made more intricate by streaming tiles to UNROM. For the enemies, NovaSquirrel and I would probably be willing to let you use the enemies we designed for DABG.
- Replace the music and sound effects. At this point, the decision to leave NROM behind would allow use of FamiTone or another homebrew music engine, so long as the replacement subroutines leave enough RAM free for other things.
Practical or no?