Here's a recursive version that that can be any length of hex. Lightly tested. Hopefully it's working OK.
\define hex2dec2(byte,mult:1)
<$vars myfilter="[search-replace:g[A],[10]search-replace:g[B],[11]search-replace:g[C],[12]search-replace:g[D],[13]search-replace:g[E],[14]search-replace:g[F],[15]]">
<$list filter="
[<__byte__>subfilter<myfilter>]
=[<__mult__>]
+[product[]]
"/>
</$vars>
\end
\define hex2dec-r(hex,mult)
<$list filter="[<__mult__>] =16 +[product[]]" variable="mult">
<$list filter="[<__hex__>split[]nth[1]]" variable="byte">
<$list filter="[<__hex__>split[]rest[]join[]]" variable="hex"
emptyMessage="<$macrocall $name=hex2dec2 byte=<<__hex__>> mult=<<__mult__>> />"
>
<$macrocall $name=hex2dec2 byte=<<byte>> mult=<<__mult__>> />
<$macrocall $name="hex2dec-r" hex=<<hex>> mult=<<mult>> />
</$list></$list></$list>
\end
\define hex2dec-setup(hex)
<$list filter="[<__hex__>split[]reverse[]join[]]" variable=rhex>
<$macrocall $name=hex2dec-r hex=<<rhex>> mult=1 />
</$list>
\end
\define hex2dec(hex)
<$wikify text="<<hex2dec-setup $hex$>>" name=dec>