thanks mcw. I ended up following this.

not sure if thats the same idea as what you suggested. I wish I studied more trigonometry back in school.
the code I ended up with thats working.
global proc vector getFaceNormal( string $pFaceName ) {
string $polyInfoResult[] = `polyInfo -fn $pFaceName`;
string $stringToParse = $polyInfoResult[0];
string $items[];
int $numTokens = `tokenize $stringToParse " " $items`;
float $x = ($items[2]);
float $y = ($items[3]);
float $z = ($items[4]);
vector $normal = << $x, $y, $z >>;
string $parentShape[] = `listRelatives -parent -path $pFaceName`;
string $parentTransform[] = `listRelatives -parent -path $parentShape[0]`;
float $transformMatrix[] = `xform -q -m -ws $parentTransform[0]`;
vector $worldNormal = `pointMatrixMult $normal $transformMatrix`;
vector $unitWorldNormal = unit( $worldNormal );
return $unitWorldNormal;
}
global proc float getAdjacentFaceAngle(string $inFaces[])
{
vector $fnormals[];
//string $faces[] = `ls -sl -fl`;
vector $fPos[];
for($face in $inFaces){
$fnormals[`size($fnormals)`] = `getFaceNormal($face)`;
setToolTo Move;
select -r $face;
float $faceCenter[] = `manipMoveContext -q -p Move`;
$fPos[`size $fPos`] = <<$faceCenter[0], $faceCenter[1], $faceCenter[2]>> ;
}
float $upDown = dot($fnormals[0], ($fPos[1] - $fPos[0]));
//dotProduct = Mathutils.DotVecs(face1.no, (face2.cent - face1.cent))
//print ("upDown: "+ $upDown + "\n");
int $degree = rad_to_deg(`angle $fnormals[0] $fnormals[1]`);
select -r $infaces;
float $dotProduct = dotProduct($fnormals[0],$fnormals[1],0);
int $finalAngle;
//print ("dotProduct: " + $dotProduct + "\n");
if($upDown > 0){
$finalAngle = 180 - $degree;
}
else if($upDown < 0){
$finalAngle = 180 + $degree;
}
else if($upDown == 0){
if ($dotProduct == 1){
$finalAngle = 180;
}
else if($dotProduct == -1){
$finalAngle = 360;
}
}
//print ($finalAngle + "\n");
//print $degree;
return $finalAngle;
}
https://www.artstation.com/kelvintam