With XPath 2.0, it's easy:
(with <a> as the context node)
max(b/count(c))
With 1.0 as always it's more tortuous. The usual way to do max/min in 1.0 is to sort and take the first/last:
<xsl:variable name="max">
<xsl:for-each select="b"/>
<xsl:sort select="count(c)" data-type="number"/>
<xsl:if test="position()=last()">
<xsl:value-of select="count(c)"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference