In fact, everything is simple in the types of blocks: this is Alice for understanding which class should be used for this block layout. In your example, type="page/html" means when drawing this block to use the class Mage_Page_Block_Html because:
page - alias for the name of the Mage_Page_Block class of the Mage_Page_Block module received and the config.xml file of the corresponding module ( app/code/core/Mage/Page/etc/config.xml ):
<blocks> <page> <class>Mage_Page_Block</class> </page> </blocks>
html - the last part of the class name
To understand: if you want to display the Mage_Page_Block_Html_Topmenu block in your layout, then you should specify the page/html_topmenu .
More detail in the code to study how the block type is parsed and the final class is formed in Mage_Core_Model_Config::getGroupedClassName() where the $groupType argument is your block type ( page/html ). For a better understanding, it is worth exploring the layout class: Mage_Core_Model_Layout
Important: Separation through the _ symbol is relevant for the block type, but not for the template (!). In the template path used standard divide - / . The template path is calculated from the current batch and the current theme. You can see in the settings which one you use - System> Configuration> Design :
