(Too long to be a comment, so i put it as an answer)
To pack all fields together, you must replace the array with 4 fields:
typedef struct _a {
short a1:13 __attribute__((packed));
char a2_0:8 __attribute__((packed));
char a2_1:8 __attribute__((packed));
char a2_2:8 __attribute__((packed));
char a2_3:8 __attribute__((packed));
} a;