Levels need to be meticulously designed according to the mechanics of the game. If Mario can jump 2 blocks high, putting all the platforms he needs to get above at 4 blocks above him is really going to lead to a very boring and short game.
White plumbers can't jump, no matter how many times they try.*
I have a pretty good idea as to how the mechanics will work mostly. It's not time to build the actual levels yet, that would be jumping ahead waaaay too far. But a test level or two is a good plan. It allows me to test the mechanics of things a bit as I go along so that I can tweak them along with animations and timing in a way that makes sense, not just by guessing.
So a lot needs to happen here: I need to work out the basic structure of a level, then I have to translate that into an actual file, draw a few things to fit into it (thankfully this can be quite basic) and drop it into my game engine. It doesn't sound too bad but I'm leaving out a bunch of steps, one of which is building a level editor. It's pretty similar to somebody saying, "Oh whoops, I need to draw something, let me just make Photoshop"**. Ok, so it won't be that complex but it won't be something I whip out in a day either. I've done some basic conceptual design so far and I'm trying to keep it as user friendly as possible. I'll show you some of my thoughts on it later.
* My graphics tablet has packed up. No heartbeat. Drawing with my mouse is really tedious.
** I did a really simple picture editor/creator yonks ago in QBasic when I needed to create sprites for some game. Mostly due to QBasic's attrocious memory limits (using bitmaps was a chunky thing to do, and also something I didn't know how to code either).