diff --git a/data_entity/data_entity.module b/data_entity/data_entity.module
index 755da61..182aa3c 100644
--- a/data_entity/data_entity.module
+++ b/data_entity/data_entity.module
@@ -223,3 +223,54 @@ function data_entity_views_api() {
   );
 }
 
+/**
+ * Implements hook_entity_property_info().
+ *
+ * Allow modules to define metadata about entity properties.
+ */
+function data_entity_entity_property_info() {
+  $tables = data_entity_get_entity_tables();
+  foreach ($tables as $table) {
+    foreach ($table->table_schema['fields'] as $field_name => $field) {
+      $info['data_' . $table->name]['properties'][$field_name] = array(
+        'label' => t(!empty($table->meta['fields'][$field_name]['label']) ? $table->meta['fields'][$field_name]['label'] : $field_name),
+        'getter callback' => 'entity_metadata_field_verbatim_get',
+        'setter callback' => 'entity_metadata_field_verbatim_set',
+        'field' => TRUE,
+      );
+    }
+  }
+  return $info;
+}
+
+/**
+ * Implements hook_feeds_processor_targets_alter().
+ *
+ * Alter mapping targets for entities. Use this hook to add additional target
+ * options to the mapping form of Node processors.
+ */
+function data_entity_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_name) {
+  if (substr($entity_type, 0, 5) == 'data_') {
+    $table_name = substr($entity_type, 5);
+    $tables = data_entity_get_entity_tables();
+    if (isset($tables[$table_name])) {
+      $table = $tables[$table_name];
+      foreach ($table->table_schema['fields'] as $field_name => $field) {
+        $targets[$field_name] = array(
+          'name' => !empty($table->meta['fields'][$field_name]['label']) ? $table->meta['fields'][$field_name]['label'] : $field_name,
+          'description' => 'Field of type ' . $field['type'] . '.',
+          'callback' => 'data_entity_set_target',
+          'optional_unique' => TRUE,
+        );
+      }
+    }
+  }
+}
+
+/**
+ * Callback specified in data_entity_feeds_processor_targets_alter().
+ */
+function data_entity_set_target($source, $entity, $target, $value) {
+  $entity->{$target} = $value;
+  return $entity;
+}
