diff --git a/includes/media_brightcove.admin.inc b/includes/media_brightcove.admin.inc
index d4afeea..15716c7 100644
--- a/includes/media_brightcove.admin.inc
+++ b/includes/media_brightcove.admin.inc
@@ -23,15 +23,19 @@ function media_brightcove_settings() {
  * admin/content/emfield.
  */
 function media_brightcove_admin_form() {
-  // Find the Echove library.
-  $echove_path = media_brightcove_echove_path();
+  // Find the Brightcove Media API library.
+  $mapi_path = media_brightcove_mapi_path();
+
+  // @TODO: This should be in hook_requirements().
 
-  if (!$echove_path) {
-    drupal_set_message(t("You need to download the !echove and extract the entire contents of the archive into the %path folder of your server.", array('!echove' => l(t('Echove PHP library'), 'http://echove.net/', array('attributes' => array('target' => '_blank'))), '%path' => 'sites/all/libraries')), 'error');
+  if (!$mapi_path) {
+      drupal_set_message(t("You need to download the !mapi and extract the entire contents of the archive into the %path folder of your server.", array('!mapi' => l(t('Brightcove Media API library'), 'http://opensource.brightcove.com/project/PHP-MAPI-Wrapper/', array('attributes' => array('target' => '_blank'))), '%path' => 'sites/all/libraries')), 'error');
   }
 
   $form = array();
 
+// @TODO: Nearly all of these uses of t() below are WRONG WRONG WRONG WRONG
+
   $form['player'] = array(
     '#type' => 'fieldset',
     '#title' => t('Player settings'),
@@ -71,11 +75,11 @@ function media_brightcove_admin_form() {
     '#description' => t("These settings are for the !api.", array('!api' => l(t("Brightcove developer's API"), MEDIA_BRIGHTCOVE_API_URL, array('attributes' => array('target' => '_blank'))))),
     '#collapsible' => TRUE,
   );
-  $form['api'][media_brightcove_variable_name('echove_path')] = array(
+  $form['api'][media_brightcove_variable_name('mapi_path')] = array(
     '#type' => 'textfield',
-    '#title' => t('Path to Echove library'),
-    '#description' => t("You need to download the !echove and extract the entire contents of the archive into the %path folder of your server. The module will attempt to autodiscover its path, but you may override that by entering the path here.", array('!echove' => l(t('Echove PHP library'), 'http://echove.net/', array('attributes' => array('target' => '_blank'))), '%path' => 'sites/all/libraries')),
-    '#default_value' => $echove_path,
+    '#title' => t('Path to Brightcove Media API library'),
+    '#description' => t("You need to download the !mapi and extract the entire contents of the archive into the %path folder of your server. The module will attempt to autodiscover its path, but you may override that by entering the path here.", array('!mapi' => l(t('Brightcove Media API library'), 'http://opensource.brightcove.com/project/PHP-MAPI-Wrapper/', array('attributes' => array('target' => '_blank'))), '%path' => 'sites/all/libraries')),
+    '#default_value' => $mapi_path,
   );
   $form['api'][media_brightcove_variable_name('read_token')] = array(
     '#type' => 'textfield',
diff --git a/includes/media_brightcove.media_mover.inc b/includes/media_brightcove.media_mover.inc
index 4ca67ba..b2c2f97 100644
--- a/includes/media_brightcove.media_mover.inc
+++ b/includes/media_brightcove.media_mover.inc
@@ -30,7 +30,7 @@ function media_brightcove_upload_video($file, $configuration) {
   $filepath = media_mover_api_config_current_file($file);
   $fileinfo = pathinfo($filepath);
 
-  $echove = new Echove(media_brightcove_variable_get('read_token'), media_brightcove_variable_get('write_token'));
+  $mapi = new BCMAPI(media_brightcove_variable_get('read_token'), media_brightcove_variable_get('write_token'));
 
   // Create an array of required meta data.
   $metaData = array(
@@ -43,7 +43,7 @@ function media_brightcove_upload_video($file, $configuration) {
 
   try {
     // Upload the video and save the video ID.
-    $id = (string)$echove->createMedia('video', $filepath, $metaData);
+    $id = (string)$mapi->createMedia('video', $filepath, $metaData);
   }
   catch (Exception $error) {
     watchdog('media_brightcove', 'Unhandled error from Brightcove when attempting to upload !file: %error', array('!file' => l($filepath, $filepath), '%error' => $error->getMessage()), WATCHDOG_ERROR);
diff --git a/includes/media_brightcove.variables.inc b/includes/media_brightcove.variables.inc
index f612f5f..23fdae4 100644
--- a/includes/media_brightcove.variables.inc
+++ b/includes/media_brightcove.variables.inc
@@ -121,8 +121,8 @@ function media_brightcove_variable_default($name = NULL) {
 
   if (!isset($defaults)) {
     $defaults = array(
-      // The path to the Echove class definition in echove.php.
-      'echove_path' => '',
+      // The path to the MAPI class definition in bc-mapi.php.
+      'mapi_path' => '',
 
       // The description length limit imposed by Brightcove.
       'description_length' => 250,
diff --git a/media_brightcove.install b/media_brightcove.install
index ccd6471..9c3fa8e 100644
--- a/media_brightcove.install
+++ b/media_brightcove.install
@@ -547,7 +547,7 @@ function _media_brightcove_update_get_metadata($field, &$context) {
  * This will populate the new data for brightcove videos.
  */
 function _media_brightcove_update_get_metadata_emvideo($field, &$context) {
-  // Autoload the Echove class when needed.
+  // Autoload the Brightcove Media API class when needed.
   spl_autoload_register('media_brightcove_autoload');
 
   $result = db_query_range("SELECT * FROM {{$context['sandbox']['table']}} WHERE vid > %d AND {$context['sandbox']['col_provider']} = 'brightcove' AND {$context['sandbox']['col_version']} < %d ORDER BY vid ASC", $context['sandbox']['current_node'], MEDIA_BRIGHTCOVE_DATA_VERSION, 0, $context['sandbox']['limit']);
@@ -599,7 +599,7 @@ function _media_brightcove_update_get_metadata_emvideo($field, &$context) {
  * Ensure we store any data of current emfield videos as well.
  */
 function _media_brightcove_update_get_metadata_emfield($field, &$context) {
-  // Autoload the Echove class when needed.
+  // Autoload the Brightcove Media API class when needed.
   spl_autoload_register('media_brightcove_autoload');
 
   $result = db_query_range("SELECT * FROM {{$context['sandbox']['table']}} WHERE vid > %d AND {$context['sandbox']['col_uri']} LIKE 'brightcove://%%' ORDER BY vid ASC", $context['sandbox']['current_node'], 0, $context['sandbox']['limit']);
diff --git a/media_brightcove.module b/media_brightcove.module
index f390b41..70adea3 100644
--- a/media_brightcove.module
+++ b/media_brightcove.module
@@ -150,20 +150,21 @@ function media_brightcove_status($code, $reset = FALSE) {
       $status[$code] = $cache->data;
     }
     else {
-      if (media_brightcove_echove_path()) {
-        $echove = new Echove(media_brightcove_variable_get('read_token'), media_brightcove_variable_get('write_token'));
+      if (media_brightcove_mapi_path()) {
+        $mapi = new BCMAPI(media_brightcove_variable_get('read_token'), media_brightcove_variable_get('write_token'));
 
         try {
           // Get the status of the desired status.
-          $status[$code] = $echove->getStatus('video', $code);
+          $status[$code] = $mapi->getStatus('video', $code);
         }
-        catch (EchoveException $error) {
+        catch (BCMAPIException $error) {
           watchdog('media_brightcove', 'Unhandled error from Brightcove when retrieving the status of video ID %video: %error', array('%video' => $code, '%error' => $error->getMessage()), WATCHDOG_ERROR);
           $status[$code] = MEDIA_BRIGHTCOVE_STATUS_UNKNOWN;
         }
       }
       else {
-        // We don't have the echove library installed, so the status is unknown.
+        // We don't have the Brightcove Media API library installed, so the
+        // status is unknown.
         $status[$code] = MEDIA_BRIGHTCOVE_STATUS_UNKNOWN;
       }
       cache_set('media_brightcove:status:'. $code, $status[$code], 'cache_media_brightcove_status', CACHE_TEMPORARY);
@@ -349,43 +350,44 @@ function media_brightcove_validate_configuration($element, &$form_state) {
  * Implementation of hook_init().
  */
 function media_brightcove_init() {
-  // Autoload the Echove class when needed.
+  // Autoload the Media API class when needed.
   spl_autoload_register('media_brightcove_autoload');
 }
 
 /**
- * Autoload the Echove class when needed.
+ * Autoload the Media API class when needed.
  */
 function media_brightcove_autoload($class_name) {
-  if (in_array($class_name, array('Echove', 'EchoveException')) && media_brightcove_echove_path()) {
-    include_once(media_brightcove_echove_path() . '/echove.php');
+  if (in_array($class_name, array('BCMAPI', 'BCMAPIException')) && media_brightcove_mapi_path()) {
+    include_once(media_brightcove_mapi_path() . '/bc-mapi.php');
   }
 }
 
 /**
- * Return the path to the Echove library.
+ * Return the path to the Brightcove Media API library.
  *
- * If media_brightcove_variable_get('echove_path') has not yet been set, then
- * this will attempt to autodiscover the path if the echove.php file exists
+ * If media_brightcove_variable_get('mapi_path') has not yet been set, then
+ * this will attempt to autodiscover the path if the bc-mapi.php file exists
  * within sites/all/libraries/* or sites/example.com/libraries/*. It will also
- * set the path to media_brightcove_variable_get('echove_path').
+ * set the path to media_brightcove_variable_get('mapi_path').
  *
- * The library is available from http://echove.net/.
+ * The library is available from
+ * http://opensource.brightcove.com/project/PHP-MAPI-Wrapper/
  *
  * @param boolean $reset
  *  (Optional) If TRUE, then reset the variable and attempt a new autodiscovery.
  * @return string
- *  The path to the echove.php file.
+ *  The path to the bc-mapi.php file.
  */
-function media_brightcove_echove_path($reset = FALSE) {
+function media_brightcove_mapi_path($reset = FALSE) {
   static $path;
 
   if (!isset($path) || $reset) {
-    if (!($path = media_brightcove_variable_get('echove_path')) || $reset) {
-      $files = drupal_system_listing('^echove\.php$', 'libraries', 'basename', 0);
-      if (isset($files['echove.php'])) {
-        $path = dirname($files['echove.php']->filename);
-        media_brightcove_variable_set('echove_path', $path);
+    if (!($path = media_brightcove_variable_get('mapi_path')) || $reset) {
+      $files = drupal_system_listing('^bc-mapi\.php$', 'libraries', 'basename', 0);
+      if (isset($files['bc-mapi.php'])) {
+        $path = dirname($files['bc-mapi.php']->filename);
+        media_brightcove_variable_set('mapi_path', $path);
       }
     }
   }
diff --git a/themes/media_brightcove.theme.inc b/themes/media_brightcove.theme.inc
index 5106bb7..d3b9688 100644
--- a/themes/media_brightcove.theme.inc
+++ b/themes/media_brightcove.theme.inc
@@ -30,21 +30,21 @@ function template_preprocess_media_brightcove_video(&$variables) {
   static $count = 0;
 
   if ($variables['video_id']) {
-    $variables['width'] = isset($variables['width']) ? $variables['width'] : (isset($variables['options']['width']) ? $variables['options']['width'] : media_brightcove_variable_get('default_width'));
-    $variables['height'] = isset($variables['height']) ? $variables['height'] : (isset($variables['options']['height']) ? $variables['options']['height'] : media_brightcove_variable_get('default_height'));
+    $variables['width'] = !empty($variables['width']) ? $variables['width'] : (!empty($variables['options']['width']) ? $variables['options']['width'] : media_brightcove_variable_get('default_width'));
+    $variables['height'] = !empty($variables['height']) ? $variables['height'] : (!empty($variables['options']['height']) ? $variables['options']['height'] : media_brightcove_variable_get('default_height'));
 
-    $variables['full_size'] = isset($variables['options']['full_size']) ? $variables['options']['full_size'] : media_brightcove_variable_get('full_size_default');
+    $variables['full_size'] = !empty($variables['options']['full_size']) ? $variables['options']['full_size'] : media_brightcove_variable_get('full_size_default');
 
-    $publisher_id = $variables['publisher_id'] ? $variables['publisher_id'] : (isset($variables['options']['field']['widget'][media_brightcove_variable_name('publisher_id')]) ? $variables['options']['field']['widget'][media_brightcove_variable_name('publisher_id')] : media_brightcove_variable_get('publisher_id'));
+    $publisher_id = $variables['publisher_id'] ? $variables['publisher_id'] : (!empty($variables['options']['field']['widget'][media_brightcove_variable_name('publisher_id')]) ? $variables['options']['field']['widget'][media_brightcove_variable_name('publisher_id')] : media_brightcove_variable_get('publisher_id'));
     $variables['publisher_id'] = check_plain($publisher_id);
 
     // Work out which player ID to use:
     $player_id = $variables['player_id'] ? $variables['player_id'] : NULL;
     if ($variables['full_size']) {
-      $player_id = isset($player_id) ? $player_id : (isset($variables['options']['field']['widget'][media_brightcove_variable_name('full_player_id')]) ? $variables['options']['field']['widget'][media_brightcove_variable_name('full_player_id')] : media_brightcove_variable_get('full_player_id'));
+      $player_id = !empty($player_id) ? $player_id : (!empty($variables['options']['field']['widget'][media_brightcove_variable_name('full_player_id')]) ? $variables['options']['field']['widget'][media_brightcove_variable_name('full_player_id')] : media_brightcove_variable_get('full_player_id'));
     }
     else {
-      $player_id = isset($player_id) ? $player_id : (isset($variables['options']['field']['widget'][media_brightcove_variable_name('preview_player_id')]) ? $variables['options']['field']['widget'][media_brightcove_variable_name('preview_player_id')] : media_brightcove_variable_get('preview_player_id'));
+      $player_id = !empty($player_id) ? $player_id : (!empty($variables['options']['field']['widget'][media_brightcove_variable_name('preview_player_id')]) ? $variables['options']['field']['widget'][media_brightcove_variable_name('preview_player_id')] : media_brightcove_variable_get('preview_player_id'));
     }
 
     $variables['player_id'] = check_plain($player_id);
@@ -55,7 +55,7 @@ function template_preprocess_media_brightcove_video(&$variables) {
     $variables['availability'] = TRUE;
 
     // Display a message if a video is currently unavailable.
-    if (media_brightcove_variable_get('check_for_unavailable') && media_brightcove_echove_path() && !media_brightcove_video_available($variables['video_id']) && ($unavailable_message = media_brightcove_variable_get('status_display_unavailable'))) {
+    if (media_brightcove_variable_get('check_for_unavailable') && media_brightcove_mapi_path() && !media_brightcove_video_available($variables['video_id']) && ($unavailable_message = media_brightcove_variable_get('status_display_unavailable'))) {
       $variables['availability'] = FALSE;
       $variables['output'] = theme('media_brightcove_unavailable_message', $unavailable_message);
     }
