Sure, you can do this.
However, it should read
#define fall_speed ((var*)my.skill2)[2]
instead of
#define ((var*)my.skill2)[2] fall_speed
(etc).
It's not very flexible that way, though, as it requires the my pointer.
This is probably somewhat more convenient:
#define fall_speed(ent) ((var*)(ent)->skill2)[2]
...
fall_speed(my) = 56;