How do I control the file appearance using File Entity?
Since I've been no longer into Drupal for a long time now, I'm even not sure I remember the answer. But I managed to dig up the code below which smells like an answer @digitgopher asks for. So FWIW, and sorry for somewhat messy comments hanging around:

&lt;?php

/**
* Implements hook_field_formatter_info().
*/
function fileformatter_field_formatter_info() {
  return array(
    'fileformatter_formatter' =&gt; array(
      'label' =&gt; t('File Formatter'),
      'field types' =&gt; array('file'),
      'settings' =&gt; array(
        'link_text' =&gt; '',
      )
    ),
  );
}

/**
 * Implements hook_field_formatter_settings_form().
 */
function fileformatter_field_formatter_settings_form($field, $instance, $view_mode, $form, &amp;$form_state){
  //This gets the view_mode where our settings are stored
  $display = $instance['display'][$view_mode];

  //This gets the actual settings
  $settings = $display['settings'];

  //Initialize the element variable
  $element = array();

  //settings
  $element['link_text'] = array(
    '#type' =&gt; 'textfield',
    '#title' =&gt; t('Link text'),
    '#description' =&gt; t('The text to appear next to icon. Leave empty for raw file name. Possible tokens: %fn = file name, %fd = file description, %cp = node title'),
    '#default_value' =&gt; $settings['link_text'],
  );

  return $element;
}

/**
 * Implements hook_field_formatter_settings_summary().
 */
function fileformatter_field_formatter_settings_summary($field, $instance, $view_mode) {
  $display = $instance['display'][$view_mode];
  $settings = $display['settings'];
  $summary = array();


  $summary = t('will be labeled ');
  $summary .= ($settings['link_text'] == '') ? t('using file name') :  $settings['link_text'];

  return $summary;
}

/**
 * Implements hook_field_formatter_view().
 */
function fileformatter_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $elements = array();
  $settings = $display['settings'];

  foreach ($items as $delta =&gt; $item) {
    $html = '';

    // LINK TEXT
    $link_text = ($settings['link_text'] == '') ? $item['filename'] : check_plain($settings['link_text']);

    /* if (module_exists('token')) {
      $link_text = token_replace($settings['link_text'], array('node' =&gt; $entity));
    } else { */
      $link_text = str_replace('%fn', $item['filename'], $link_text);
      $link_text = str_replace('%fd', $item['description'], $link_text);
      if($entity_type == 'node'){
        $link_text = str_replace('%cp', $entity-&gt;title, $link_text);
      } else {
        $link_text = str_replace('%cp', '', $link_text);
      }
    // }

    // last resort, so to not allow for empty links
    if($link_text == ''){
      $link_text = $item['filename'];
    }

    // ICON - as CSS class background, which reduces file requests and allows for easier vertical-alignment
    $dashed_mime = strtr($item['filemime'], array('/' =&gt; '-'));
    /* // img method:
      $icon = theme('file_icon', array('file' =&gt; file_load($item['fid']), 'icon_directory' =&gt; drupal_get_path('module', 'file') . '/icons'));
      $icon_html .= '&lt;span class="link-icon"&gt;' . $icon . '&lt;/span&gt;';
    */

    // LINK MARKUP
    $url = file_create_url($item['uri']);
    $link_options = array(
      'html'        =&gt; TRUE,
      'attributes'  =&gt; array(
        'title' =&gt; $item['filename'],
        'class' =&gt; 'file file-formatted ' . $dashed_mime . ' file-fid-' . $item['fid'],
        'type' =&gt; $item['filemime'] . '; length=' . $item['filesize'],
        'target' =&gt; '_blank',
       ),
    );

    $html .= l($link_text, $url, $link_options);

    $elements[$delta]['#markup'] = $html; // Assign it to the #markup of the element
  }
  return $elements;
}