I was thinking recently about what causes the difficulty and easiness of pokemon. It stems mostly from the fact that opponents are overlevelled but easy to kill and counter if you have the right pokemon, since they NEVER switch out (excepting cynthia and some of the elite four I believe).
So maybe there could be like a... paranoia meter with CPU opponents (so to speak). It would be a settable meter (from 0-100) that could control how often the computer switches. A paranoia meter at 0 would leave it so that the computer would never switch, no matter what, like ingame. However, if the meter is above that, then the computer will begin to predict your moves. I'd think an optimal (hardest difficulty) meter would be somewhere around 60-75%; 100 would mean that it would switch way too much and would always incorrectly predict (thus making the game extremely easy).
It takes for granted that every pokemon will use some sort of stab (and what stab they will use is predetermined; the computer will expect thunder/bolt from manectric (not thundershock), meteor mash from metagross, etc.) most of the time, excepting normal types (from whom the computer will expect the occasional return or hyper voice, as well as the slew of high-power special moves like ice beam and thunderbolt they learn) and also expects attacks from the pokemon's highest attack stat. Essentially, this means that if the computer has a gyarados (and you have a jolteon), the computer will switch out to say... hippowdon in anticipation of a t-bolt/thunder. Additionally, as the computer learns of your moves (I.E. jolteon uses HP grass), it will try to avoid them as well as its stabs. now the computer will switch out to a grass type like... celebi or something
Basically, what I'm saying is that the computer could have a crude notion of prediction with this, and it would make the game a lot less of a cakewalk. At the very least it could be incorporated into the battle tower to make it hell xD
On the topic of ingame stuff, there need to be more type combos that haven't been tried or have been seldom done (that need to be exhibited by viable pokemon; I want a new bug water that's fully evolved and can be used at least in UU)
-More ghost types (with 6 unique pairings, not counting giratina)
-More fire types (fire grass and fire water at least, but that's about it; again though there are only 6 unique pairings)
-Many more electric types (with 4 unique pairings, maybe grass/elec or elec/bug)
-the bug type should have more viable pokemon; not so much new type combos but less crappy pokemon. They should go the way they did with bibarel and make the first few bug pokemon that you find actually... good. Maybe it's a bug/poison, but it's an extremely defensive one that has like... 100's in both defences and 80 in HP... a decent UU wall.