A lot of those tags are repeated for every attack; it seems like some of them could be pulled outside of the attack definition and into the item definition.
[ITEM:ITEM_WEAPON_Halberd]
[NAME:halberd:halberds]
[WEIGHT:40]
[TWO_HANDED:5]
[MINIMUM_SIZE:5]
[MATERIAL_SIZE:3]
[WEAPON_ATTACK]
[ATTACK_NAME: Thrust Spearhead]
[RANGE: 2]
[DAMAGE:100:PIERCE]
[SKILL:SPEAR]
[CRIT_BOOST:2]
[WEAPON_ATTACK]
[ATTACK_NAME: Swing Axe-head]
[MIN_SKILL: Novice]
[MAX_SKILL: Legendary]
[Range: 2]
[DAMAGE:110:Cutting]
[SKILL:AXE]
[CRIT_BOOST:0]
[WEAPON_ATTACK]
[ATTACK_NAME: Spin Attack]
[MIN_SKILL: Legendary]
[Range: 2][Radius_Hole]
[DAMAGE:110:Cutting]
[SKILL:AXE]
[CRIT_BOOST:2]
I can see two-handed varying by attack for some weapons, but I don't think your attack is likely to change any material properties.
Another thing is that you might want to re-use some attacks on other weapons, so maybe you should define attacks separately, and just tag weapons with which attacks they can use. Then you could reuse the "Thrust Spearhead" attack on a spear, for example.
Actually, come to think of it, I'm not sure it's best to work from the weapon side. Why not define attacks, and specify requirements for appropriate weapons/users? For example, you could have a basic Stab attack that requires a pointy object, or a Bludgeon attack that can use anything heavy. Maybe you could base attack stats on the properties of the object, like making the range depend on the length of the weapon, etc.
Yes, you'd need to have every item in the game tagged with descriptors. But that's probably going in anyways, and once it's done you can write up an attack and not worry about changing all the weapon raws. Much less work overall, I think.