I got super stack to work with Photon Cannons. I had to edit a couple different places though. Here is what I edited:
From UnitData - I made it look like this:
<CUnit id="PhotonCannon">
<Facing value="1"/>
<Race value="Prot"/>
<Mob value="Multiplayer"/>
<FogVisibility value="Snapshot"/>
<LifeStart value="9000"/>
<LifeMax value="9000"/>
<LifeArmor value="1"/>
<LifeArmorName value="Unit/LifeArmorName/ProtossBuildingPlating"/>
<ShieldsStart value="9000"/>
<ShieldsMax value="9000"/>
<ShieldRegenRate value="600"/>
<ShieldArmorName value="Protoss Plasma Shields"/>
<AttackTargetPriority value="20"/>
<Radius value="1"/>
<SeparationRadius value=".5"/>
<Footprint value="Footprint.5x.5Contour"/>
<PlacementFootprint value="Footprint.5x.5"/>
<ScoreMake value="750"/>
<ScoreKill value="2250"/>
<ScoreResult value="BuildOrder"/>
<SubgroupPriority value="2"/>
<MinimapRadius value="0.25"/>
<EditorCategories value="ObjectType:Structure,ObjectFamily:Melee"/>
<FlagArray index="Turnable" value="0"/>
<FlagArray index="PreventDefeat" value="1"/>
<FlagArray index="PreventDestroy" value="1"/>
<FlagArray index="DefeatReveal" value="1"/>
<FlagArray index="UseLineOfSight" value="1"/>
<FlagArray index="TownAlert" value="1"/>
<FlagArray index="NoPortraitTalk" value="1"/>
<FlagArray index="AIDefense" value="1"/>
<FlagArray index="ArmorDisabledWhileConstructing" value="1"/>
<AIEvalFactor value="0.8"/>
<Attributes index="Armored" value="0"/>
<Attributes index="Structure" value="0"/>
<PlaneArray index="Ground" value="0"/>
<Collide index="Burrow" value="0"/>
<Collide index="Ground" value="0"/>
<Collide index="Structure" value="0"/>
<Sight value="499"/>
<AbilArray Link="BuildInProgress"/>
<AbilArray Link="stop"/>
<AbilArray Link="attack"/>
<BehaviorArray Link="Detector499"/>
<BehaviorArray Link="PowerUserBaseDefenseSmall"/>
<BehaviorArray Link="UnderConstruction"/>
<CardLayouts>
<LayoutButtons Face="Cancel" Type="AbilCmd" AbilCmd="BuildInProgress,Cancel" Row="2" Column="4"/>
<LayoutButtons Face="Stop" Type="AbilCmd" AbilCmd="stop,Stop" Row="0" Column="1"/>
<LayoutButtons Face="AttackBuilding" Type="AbilCmd" AbilCmd="attack,Execute" Row="0" Column="4"/>
<LayoutButtons>
<Face value="Detector"/>
<Type value="Passive"/>
<Behavior value="Detector11"/>
<Requirements value="NotUnderConstruction"/>
<Row value="1"/>
<Column value="0"/>
</LayoutButtons>
</CardLayouts>
<GlossaryPriority value="100"/>
<CostResource index="Minerals" value="10"/>
<GlossaryCategory value="Unit/Category/ProtossUnits"/>
<WeaponArray Link="PhotonCannon" Turret="PhotonCannon"/>
<ShieldRegenDelay value="1"/>
</CUnit>
<CUnit id="D8Charge">
From AbilData I edited it to this:
<InfoArray index="Build8" Category="Army" Unit="PhotonCannon" Time="0">
<Resource index="Minerals" value="10"/>
<Button DefaultButtonFace="PhotonCannon" Requirements="HaveNexus"/>
</InfoArray>
You won't need to edit Abildata, this just make instant build, lower/changed minerals and make it so you don't need to have a Forge to build. So you can just build next to any pylons.
Notice I changed "Seperation Radius" as well. This was at like 2, I think. Then I edited the footprint down to .5 .5 so I don't have to align to grid. You also will have to edit "Burrow" and "Ground" Or I wasn't able to stack them EXACTLY ontop of each other. If you use the code I posted, you can stack just like you could in SC1, directly on top of each other. If you don't change what I changed, you might end up getting you probe to give you the "Cannot reach the target" message.
Here is a test result:

Edit:
I might have changed some things I DIDN'T need to for it to work, I was tired of changing 1 thing and trying it though. If you change the settings I have for any unit you want to stack, it will work, I have tried with a few so far, no errors.
