you can but you need to write the routines based off the ones already existing. check out daniils' weather hacking thread for more info. i actually expressed interest in this myself a while ago and might want to set out on that
no, i have not done fog. i would like to try to implement it, but have been unable.
if you are using emerald, that should be fixed by putting F3 00 at both 5CC922 (three snow flakes) and 5CC928 (steady snowing).