Little guys can do serious damage, you know... that's why weight has nothing to do with moves (save the ones specifically based around it, like Low Kick), Attack stat is already for that: physical strenght.
So, doesn't mean it should though as why should a happiny say have the strength of a golem? (not saying it actually does, but you get the idea), thats why I thought of basing things on four things: Level, Weight, Attack stat and foes defense. You don't want a hacked orsomehow normal lv 21 pokemon with an attack of 100 doing the same damage as the same pokemon with a lv 51 and an attack stat of 100, that would be unfair, so what happens is:
You base the attack on half the aatack stat and half the pokemons weight. The damage is based on half the foes defense and their body weight (as the fatter somthing is, the more it should be able to endure a hit) BUT I am kaing this for normal types only (normal types attacking normal types not other types)since other types could have other factors contributing to their attack/defense as normal type is the only type that can't be supereffective and it nees something to counter that.