diff --git a/core/modules/block_content/src/BlockContentForm.php b/core/modules/block_content/src/BlockContentForm.php
index 769a7f3..ad35bcc 100644
--- a/core/modules/block_content/src/BlockContentForm.php
+++ b/core/modules/block_content/src/BlockContentForm.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\block_content;
 
+use Drupal\block_content\Entity\BlockContentType;
 use Drupal\Core\Entity\ContentEntityForm;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Entity\EntityStorageInterface;
@@ -74,18 +75,17 @@ public static function create(ContainerInterface $container) {
    *
    * Prepares the custom block object.
    *
-   * Fills in a few default values, and then invokes hook_block_content_prepare()
-   * on all modules.
+   * Fills in a few default values, and then invokes
+   * hook_block_content_prepare() on all modules.
    */
   protected function prepareEntity() {
     $block = $this->entity;
     // Set up default values, if required.
-    $block_type = entity_load('block_content_type', $block->bundle());
     if (!$block->isNew()) {
       $block->setRevisionLog(NULL);
     }
     // Always use the default revision setting.
-    $block->setNewRevision($block_type->revision);
+    $block->setNewRevision(BlockContentType::load($block->getBlockContentType())->isNewRevision());
   }
 
   /**
diff --git a/core/modules/block_content/src/BlockContentInterface.php b/core/modules/block_content/src/BlockContentInterface.php
index d6f981c..87bf7c6 100644
--- a/core/modules/block_content/src/BlockContentInterface.php
+++ b/core/modules/block_content/src/BlockContentInterface.php
@@ -80,4 +80,50 @@ public function getTheme();
    */
   public function getInstances();
 
+  /**
+   * Return the custom block type (bundle) name.
+   *
+   * @return string
+   *   The name of the custom block type (bundle).
+   */
+  public function getBlockContentType();
+
+  /**
+   * Returns the block description.
+   *
+   * @return string
+   *   The description of this block.
+   */
+  public function getDescription();
+
+  /**
+   * Sets the description of the block to the given value.
+   *
+   * @param string $description
+   *   The desired description.
+   *
+   * @return \Drupal\block_content\BlockContentInterface
+   *   The class instance this method is called on.
+   */
+  public function setDescription($description);
+
+  /**
+   * Returns the block revision log message.
+   *
+   * @return string
+   *   The log message for the current revision of this block.
+   */
+  public function getLogMessage();
+
+  /**
+   * Sets the the block revision log message to the given value.
+   *
+   * @param string $log
+   *   The desired log message for the current revision of this block.
+   *
+   * @return \Drupal\block_content\BlockContentInterface
+   *   The class instance this method is called on.
+   */
+  public function setLogMessage($log);
+
 }
diff --git a/core/modules/block_content/src/BlockContentTypeForm.php b/core/modules/block_content/src/BlockContentTypeForm.php
index 8927162..1f2b21b 100644
--- a/core/modules/block_content/src/BlockContentTypeForm.php
+++ b/core/modules/block_content/src/BlockContentTypeForm.php
@@ -22,6 +22,7 @@ class BlockContentTypeForm extends EntityForm {
   public function form(array $form, FormStateInterface $form_state) {
     $form = parent::form($form, $form_state);
 
+    /* @var \Drupal\block_content\BlockContentTypeInterface $block_type */
     $block_type = $this->entity;
 
     $form['label'] = array(
@@ -44,7 +45,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     $form['description'] = array(
       '#type' => 'textarea',
-      '#default_value' => $block_type->description,
+      '#default_value' => $block_type->getDescription(),
       '#description' => t('Enter a description for this block type.'),
       '#title' => t('Description'),
     );
@@ -52,7 +53,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $form['revision'] = array(
       '#type' => 'checkbox',
       '#title' => t('Create new revision'),
-      '#default_value' => $block_type->revision,
+      '#default_value' => $block_type->isNewRevision(),
       '#description' => t('Create a new revision by default for this block type.')
     );
 
diff --git a/core/modules/block_content/src/BlockContentTypeInterface.php b/core/modules/block_content/src/BlockContentTypeInterface.php
index cb21631..1dbfc5e 100644
--- a/core/modules/block_content/src/BlockContentTypeInterface.php
+++ b/core/modules/block_content/src/BlockContentTypeInterface.php
@@ -14,4 +14,42 @@
  */
 interface BlockContentTypeInterface extends ConfigEntityInterface {
 
+  /**
+   * Returns the description of the block type.
+   *
+   * @return string
+   *   The description of the type of this block.
+   */
+  public function getDescription();
+
+  /**
+   * Sets the description of the block type to the given value.
+   *
+   * @param string $description
+   *   The desired description.
+   *
+   * @return \Drupal\block_content\BlockContentTypeInterface
+   *   The class instance this method is called on.
+   */
+  public function setDescription($description);
+
+  /**
+   * Returns whether a new revision should be created by default.
+   *
+   * @return bool
+   *   TRUE if a new revision should be created by default.
+   */
+  public function isNewRevision();
+
+  /**
+   * Set whether a new revision should be created by default.
+   *
+   * @param bool $new_revision
+   *   TRUE if a new revision should be created by default.
+   *
+   * @return \Drupal\block_content\BlockContentTypeInterface
+   *   The class instance this method is called on.
+   */
+  public function setNewRevision($new_revision);
+
 }
diff --git a/core/modules/block_content/src/Entity/BlockContent.php b/core/modules/block_content/src/Entity/BlockContent.php
index e2320bd..090e87c 100644
--- a/core/modules/block_content/src/Entity/BlockContent.php
+++ b/core/modules/block_content/src/Entity/BlockContent.php
@@ -137,6 +137,43 @@ public function delete() {
   /**
    * {@inheritdoc}
    */
+  public function getBlockContentType() {
+    return $this->get('type')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDescription() {
+    return $this->get('info')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setDescription($description) {
+    $this->set('info', $description);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getLogMessage() {
+    return $this->get('log')->value;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setLogMessage($log) {
+    $this->set('log', $log);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
     $fields['id'] = BaseFieldDefinition::create('integer')
       ->setLabel(t('Custom block ID'))
diff --git a/core/modules/block_content/src/Entity/BlockContentType.php b/core/modules/block_content/src/Entity/BlockContentType.php
index 007ebfb..9b967ae 100644
--- a/core/modules/block_content/src/Entity/BlockContentType.php
+++ b/core/modules/block_content/src/Entity/BlockContentType.php
@@ -47,28 +47,28 @@ class BlockContentType extends ConfigEntityBundleBase implements BlockContentTyp
    *
    * @var string
    */
-  public $id;
+  protected $id;
 
   /**
    * The custom block type label.
    *
    * @var string
    */
-  public $label;
+  protected $label;
 
   /**
    * The default revision setting for custom blocks of this type.
    *
    * @var bool
    */
-  public $revision;
+  protected $revision;
 
   /**
    * The description of the block type.
    *
    * @var string
    */
-  public $description;
+  protected $description;
 
   /**
    * {@inheritdoc}
@@ -81,4 +81,34 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function getDescription() {
+    return $this->description;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setDescription($description) {
+    $this->description = $description;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isNewRevision() {
+    return $this->revision;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setNewRevision($new_revision) {
+    $this->revision = $new_revision;
+    return $this;
+  }
+
 }
