Another question: Is there any way how to find out if a pokemon is hacked or not (except of checking obvious criteria such as pokeball it was caught in, illegal move combos, abilities...)? how can i do this (preferably checking with an AR)? Somebody traded me a magnezone but im not sure if it´s legit.
That one is a bit difficult and you won't be able to check it without externel aid. Apart from the hard properties you have mentioned (plus valid IVs, EVs and availability) there is the PID and the catch date. I think Pokéchek can display the PID but I personally have never used it and don't know for sure.
Take the PID and convert it into a hexadecimal format; you will get a string of eight characters. Important is the fourth and the two last characters.
Take the fourth character and convert it into binaries; you will get a sequence of 0 and 1. Take a look at the last character and the ability of the Pokemon: 0 stands for Ability 0 and 1 for Ability 1. If that isn't the case, the Pokemon is illegal.
The last two characters are for determining gender. Because Magnezone is genderless, you won't need to check it. But if you want, take the last to characters of the hexadecimal sequence and convert it into decimal format - you will get something between 0 and 255. It depends a bit on the gender ratio, so try this:
87.5% Male (31 - 255) 12.5% Female – 32 (0 - 30)
75% Male 25% (63 - 252) Female – 64 (0 - 62)
50% Male (127 - 255) 50% Female (0 - 126)
25% Male (191 - 252) 75% Female (0 - 190)
12.5% Male (223 - 252) 87.5% Female (0 - 222)
If the gender does not match the number, the Pokmeon is illegal.
Those are the basics of determining legality via PID, but what about how legit it is? You just don't because we cannot determine how legit something is without knowing the specs of the creator's DS. Just stick to what I have written. Took me a long time to actually find it out.
Actually, there is a way to determine real shininess via PID. If there is necessity, I will cover that, too.
Edit: Just changing the ability of a Pokemon to Dream World won't make the ability passable. There are hidden bytes used for this and unless you activate them, the Pokemon won't be a Dream World mon.