diff --git a/entity.api.php b/entity.api.php
index dff6cdc..4899090 100644
--- a/entity.api.php
+++ b/entity.api.php
@@ -60,8 +60,7 @@
  * - admin ui: (optional) An array of optional information used for providing an
  *   administrative user interface. To enable the UI at least the path must be
  *   given. Apart from that, the 'access callback' (see below) is required for
- *   the entity, and at least a loader function ENTITY_TYPE_load() has to
- *   be defined, as well as the 'ENTITY_TYPE_form' for editing, adding and
+ *   the entity, as well as the 'ENTITY_TYPE_form' for editing, adding and
  *   cloning. The form gets the entity and the operation ('edit', 'add' or
  *   'clone') passed. See entity_ui_get_form() for more details.
  *   Known keys are:
@@ -76,8 +75,7 @@
  *     not set, it defaults to entity module's path, thus the entity types
  *     'module' key is required.
  *   - menu wildcard: The wildcard to use in paths of the hook_menu() items.
- *     Defaults to %ENTITY_TYPE, for which a respective loader function
- *     ENTITY_TYPE_load() has to be defined by the implementing module.
+ *     Defaults to %entity_object which is the loader provided by Entity API.
  * - rules controller class: (optional) A controller class for providing Rules
  *   integration. The given class has to inherit from the default class being
  *   EntityDefaultRulesController. Set it to FALSE to disable this feature.
diff --git a/entity.module b/entity.module
index 51a9b13..5509635 100644
--- a/entity.module
+++ b/entity.module
@@ -71,6 +71,33 @@ function entity_type_supports($entity_type, $op) {
 }
 
 /**
+ * Menu loader function: load an entity from its path.
+ *
+ * This can be used to load entities of all types in menu paths:
+ *
+ * @code
+ * $items['myentity/%entity_object'] = array(
+ *   'load arguments' => array('myentity'),
+ *   'title' => ...,
+ *   'page callback' => ...,
+ *   'page arguments' => array(...),
+ *   'access arguments' => array(...),
+ * );
+ * @endcode
+ *
+ * @param $entity_id
+ *   The ID of the entity to load, passed by the menu URL.
+ * @param $entity_type
+ *   The type of the entity to load.
+ * @return
+ *   A fully loaded entity object, or FALSE in case of error.
+ */
+function entity_object_load($entity_id, $entity_type) {
+  $entities = entity_load($entity_type, array($entity_id));
+  return reset($entities);
+}
+
+/**
  * Permanently save an entity.
  *
  * In case of failures, an exception is thrown.
diff --git a/includes/entity.ui.inc b/includes/entity.ui.inc
index 14d97a4..228ce28 100644
--- a/includes/entity.ui.inc
+++ b/includes/entity.ui.inc
@@ -26,7 +26,7 @@ class EntityDefaultUIController {
   public function hook_menu() {
     $items = array();
     $id_count = count(explode('/', $this->path));
-    $wildcard = isset($this->entityInfo['admin ui']['menu wildcard']) ? $this->entityInfo['admin ui']['menu wildcard'] : '%' . $this->entityType;
+    $wildcard = isset($this->entityInfo['admin ui']['menu wildcard']) ? $this->entityInfo['admin ui']['menu wildcard'] : '%entity_object';
 
     $items[$this->path] = array(
       'title' => $this->entityInfo['label'] . 's',
